package com.lxmes.device.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lxmes.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.lxmes.common.core.domain.BaseEntity;

/**
 * 维保结算对象 fw_settlement_record
 * 
 * @author zhangzhiyu
 * @date 2023-05-11
 */
@ApiModel(value = "FwSettlementRecord", description = "维保结算对象")    
public class FwSettlementRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    @ApiModelProperty("序号")
    private Long id;

    /** 公司代码 */
    @Excel(name = "公司代码")
    @ApiModelProperty("公司代码")
    private String factoryCode;

    /** 公司名称 */
    @Excel(name = "公司名称")
    @ApiModelProperty("公司名称")
    private String factoryName;

    /** 维保类别 */
    @Excel(name = "维保类别")
    @ApiModelProperty("维保类别")
    private String maintenanceType;

    /** 维保编号 */
    @Excel(name = "维保编号")
    @ApiModelProperty("维保编号")
    private String maintenanceNumber;

    /** 车牌号 */
    @Excel(name = "车牌号")
    @ApiModelProperty("车牌号")
    private String licensePlate;

    /** 车辆条形码 */
    @Excel(name = "车辆条形码")
    @ApiModelProperty("车辆条形码")
    private String vehicleBarcode;

    /** 车主电话 */
    @Excel(name = "车主电话")
    @ApiModelProperty("车主电话")
    private String ownerPhone;

    /** 微信 */
    @Excel(name = "微信")
    @ApiModelProperty("微信")
    private String wechat;

    /** 维保类型 */
    @Excel(name = "维保类型")
    @ApiModelProperty("维保类型")
    private String maintenanceCategory;

    /** 故障描述 */
    @ApiModelProperty("故障描述")
    private String faultDescription;

    /** 配件编号 */
    @Excel(name = "配件编号")
    @ApiModelProperty("配件编号")
    private String partNumber;

    /** 规格型号 */
    @Excel(name = "规格型号")
    @ApiModelProperty("规格型号")
    private String specificationModel;

    /** 单位 */
    @Excel(name = "单位")
    @ApiModelProperty("单位")
    private String unit;

    /** 维保用量 */
    @Excel(name = "维保用量")
    @ApiModelProperty("维保用量")
    private String maintenanceQuantity;

    /** 配件单价 */
    @Excel(name = "配件单价")
    @ApiModelProperty("配件单价")
    private BigDecimal partUnitPrice;

    /** 配件金额 */
    @Excel(name = "配件金额")
    @ApiModelProperty("配件金额")
    private BigDecimal partAmount;

    /** 维护工时 */
    @Excel(name = "维护工时")
    @ApiModelProperty("维护工时")
    private BigDecimal maintenanceDuration;

    /** 工时单价 */
    @Excel(name = "工时单价")
    @ApiModelProperty("工时单价")
    private BigDecimal laborCostRate;

    /** 工时金额 */
    @Excel(name = "工时金额")
    @ApiModelProperty("工时金额")
    private BigDecimal laborCostAmount;

    /** 救援费用 */
    @Excel(name = "救援费用")
    @ApiModelProperty("救援费用")
    private BigDecimal rescueCost;

    /** 应结算金额 */
    @Excel(name = "应结算金额")
    @ApiModelProperty("应结算金额")
    private BigDecimal payableAmount;

    /** 折扣率 */
    @Excel(name = "折扣率")
    @ApiModelProperty("折扣率")
    private BigDecimal discountRate;

    /** 实结算金额 */
    @Excel(name = "实结算金额")
    @ApiModelProperty("实结算金额")
    private BigDecimal actualAmount;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("完成时间")
    private Date finishTime;

    /** 维保工位 */
    @Excel(name = "维保工位")
    @ApiModelProperty("维保工位")
    private String maintenancePosition;

    /** 维保人员 */
    @Excel(name = "维保人员")
    @ApiModelProperty("维保人员")
    private String maintenancePersonnel;

    /** 检验人员 */
    @Excel(name = "检验人员")
    @ApiModelProperty("检验人员")
    private String inspector;

    /** 结算时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结算时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("结算时间")
    private Date settlementTime;

    /** 结算人员 */
    @Excel(name = "结算人员")
    @ApiModelProperty("结算人员")
    private String settlementPersonnel;

    /** 结算状态 */
    @Excel(name = "结算状态")
    @ApiModelProperty("结算状态")
    private String settlementStatus;

    /** 结算编号 */
    @Excel(name = "结算编号")
    @ApiModelProperty("结算编号")
    private String settlementNumber;

    /** 出门编号 */
    @Excel(name = "出门编号")
    @ApiModelProperty("出门编号")
    private String departureNumber;


    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setFactoryCode(String factoryCode) 
    {
        this.factoryCode = factoryCode;
    }

    public String getFactoryCode() 
    {
        return factoryCode;
    }
    public void setFactoryName(String factoryName) 
    {
        this.factoryName = factoryName;
    }

    public String getFactoryName() 
    {
        return factoryName;
    }
    public void setMaintenanceType(String maintenanceType) 
    {
        this.maintenanceType = maintenanceType;
    }

    public String getMaintenanceType() 
    {
        return maintenanceType;
    }
    public void setMaintenanceNumber(String maintenanceNumber) 
    {
        this.maintenanceNumber = maintenanceNumber;
    }

    public String getMaintenanceNumber() 
    {
        return maintenanceNumber;
    }
    public void setLicensePlate(String licensePlate) 
    {
        this.licensePlate = licensePlate;
    }

    public String getLicensePlate() 
    {
        return licensePlate;
    }
    public void setVehicleBarcode(String vehicleBarcode) 
    {
        this.vehicleBarcode = vehicleBarcode;
    }

    public String getVehicleBarcode() 
    {
        return vehicleBarcode;
    }
    public void setOwnerPhone(String ownerPhone) 
    {
        this.ownerPhone = ownerPhone;
    }

    public String getOwnerPhone() 
    {
        return ownerPhone;
    }
    public void setWechat(String wechat) 
    {
        this.wechat = wechat;
    }

    public String getWechat() 
    {
        return wechat;
    }
    public void setMaintenanceCategory(String maintenanceCategory) 
    {
        this.maintenanceCategory = maintenanceCategory;
    }

    public String getMaintenanceCategory() 
    {
        return maintenanceCategory;
    }
    public void setFaultDescription(String faultDescription) 
    {
        this.faultDescription = faultDescription;
    }

    public String getFaultDescription() 
    {
        return faultDescription;
    }
    public void setPartNumber(String partNumber) 
    {
        this.partNumber = partNumber;
    }

    public String getPartNumber() 
    {
        return partNumber;
    }
    public void setSpecificationModel(String specificationModel) 
    {
        this.specificationModel = specificationModel;
    }

    public String getSpecificationModel() 
    {
        return specificationModel;
    }
    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }
    public void setMaintenanceQuantity(String maintenanceQuantity) 
    {
        this.maintenanceQuantity = maintenanceQuantity;
    }

    public String getMaintenanceQuantity() 
    {
        return maintenanceQuantity;
    }
    public void setPartUnitPrice(BigDecimal partUnitPrice) 
    {
        this.partUnitPrice = partUnitPrice;
    }

    public BigDecimal getPartUnitPrice() 
    {
        return partUnitPrice;
    }
    public void setPartAmount(BigDecimal partAmount) 
    {
        this.partAmount = partAmount;
    }

    public BigDecimal getPartAmount() 
    {
        return partAmount;
    }
    public void setMaintenanceDuration(BigDecimal maintenanceDuration) 
    {
        this.maintenanceDuration = maintenanceDuration;
    }

    public BigDecimal getMaintenanceDuration() 
    {
        return maintenanceDuration;
    }
    public void setLaborCostRate(BigDecimal laborCostRate) 
    {
        this.laborCostRate = laborCostRate;
    }

    public BigDecimal getLaborCostRate() 
    {
        return laborCostRate;
    }
    public void setLaborCostAmount(BigDecimal laborCostAmount) 
    {
        this.laborCostAmount = laborCostAmount;
    }

    public BigDecimal getLaborCostAmount() 
    {
        return laborCostAmount;
    }
    public void setRescueCost(BigDecimal rescueCost) 
    {
        this.rescueCost = rescueCost;
    }

    public BigDecimal getRescueCost() 
    {
        return rescueCost;
    }
    public void setPayableAmount(BigDecimal payableAmount) 
    {
        this.payableAmount = payableAmount;
    }

    public BigDecimal getPayableAmount() 
    {
        return payableAmount;
    }
    public void setDiscountRate(BigDecimal discountRate) 
    {
        this.discountRate = discountRate;
    }

    public BigDecimal getDiscountRate() 
    {
        return discountRate;
    }
    public void setActualAmount(BigDecimal actualAmount) 
    {
        this.actualAmount = actualAmount;
    }

    public BigDecimal getActualAmount() 
    {
        return actualAmount;
    }
    public void setFinishTime(Date finishTime) 
    {
        this.finishTime = finishTime;
    }

    public Date getFinishTime() 
    {
        return finishTime;
    }
    public void setMaintenancePosition(String maintenancePosition) 
    {
        this.maintenancePosition = maintenancePosition;
    }

    public String getMaintenancePosition() 
    {
        return maintenancePosition;
    }
    public void setMaintenancePersonnel(String maintenancePersonnel) 
    {
        this.maintenancePersonnel = maintenancePersonnel;
    }

    public String getMaintenancePersonnel() 
    {
        return maintenancePersonnel;
    }
    public void setInspector(String inspector) 
    {
        this.inspector = inspector;
    }

    public String getInspector() 
    {
        return inspector;
    }
    public void setSettlementTime(Date settlementTime) 
    {
        this.settlementTime = settlementTime;
    }

    public Date getSettlementTime() 
    {
        return settlementTime;
    }
    public void setSettlementPersonnel(String settlementPersonnel) 
    {
        this.settlementPersonnel = settlementPersonnel;
    }

    public String getSettlementPersonnel() 
    {
        return settlementPersonnel;
    }
    public void setSettlementStatus(String settlementStatus) 
    {
        this.settlementStatus = settlementStatus;
    }

    public String getSettlementStatus() 
    {
        return settlementStatus;
    }
    public void setSettlementNumber(String settlementNumber) 
    {
        this.settlementNumber = settlementNumber;
    }

    public String getSettlementNumber() 
    {
        return settlementNumber;
    }
    public void setDepartureNumber(String departureNumber) 
    {
        this.departureNumber = departureNumber;
    }

    public String getDepartureNumber() 
    {
        return departureNumber;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("factoryCode", getFactoryCode())
            .append("factoryName", getFactoryName())
            .append("maintenanceType", getMaintenanceType())
            .append("maintenanceNumber", getMaintenanceNumber())
            .append("licensePlate", getLicensePlate())
            .append("vehicleBarcode", getVehicleBarcode())
            .append("ownerPhone", getOwnerPhone())
            .append("wechat", getWechat())
            .append("maintenanceCategory", getMaintenanceCategory())
            .append("faultDescription", getFaultDescription())
            .append("partNumber", getPartNumber())
            .append("specificationModel", getSpecificationModel())
            .append("unit", getUnit())
            .append("maintenanceQuantity", getMaintenanceQuantity())
            .append("partUnitPrice", getPartUnitPrice())
            .append("partAmount", getPartAmount())
            .append("maintenanceDuration", getMaintenanceDuration())
            .append("laborCostRate", getLaborCostRate())
            .append("laborCostAmount", getLaborCostAmount())
            .append("rescueCost", getRescueCost())
            .append("payableAmount", getPayableAmount())
            .append("discountRate", getDiscountRate())
            .append("actualAmount", getActualAmount())
            .append("finishTime", getFinishTime())
            .append("maintenancePosition", getMaintenancePosition())
            .append("maintenancePersonnel", getMaintenancePersonnel())
            .append("inspector", getInspector())
            .append("settlementTime", getSettlementTime())
            .append("settlementPersonnel", getSettlementPersonnel())
            .append("settlementStatus", getSettlementStatus())
            .append("settlementNumber", getSettlementNumber())
            .append("departureNumber", getDepartureNumber())
            .append("remark", getRemark())
            .toString();
    }
}
